import { Route, Redirect } from 'react-router-dom'
import { isAuth } from '@/utils'

const AuthRoute = ({ component: Component, ...rest }) => {
    return (
        <Route
            {...rest}
            render={props => {
                // 判断是否登录
                const isLogin = isAuth()
                if (isLogin) {
                    // 如果登录，就渲染上面拿到的 component
                    return <Component />
                } else {
                    // 如果没有登录，就重定向到 登录页面
                    // return <Redirect to="/login" />
                    return (
                        <Redirect
                            to={{
                                // 重定向时要重定向到哪个页面的地址
                                pathname: '/login',
                                // state 表示：在路由跳转的时候，携带的额外数据
                                //  注意：携带任意数据，比如，此处使用对象数据
                                state: {
                                    from: props.location.pathname,
                                },
                            }}
                        />
                    )
                }
            }}
        />
    )
}

export { AuthRoute }
